#!/bin/bash
#基础配置文件
#1.0 规则配置相关
#skipRuleParams:规则配置中跳过校验的字段

#2.0 微信消息相关
#CropID:微信企业号CropID,后台可查
#Secret:微信企业号Secret,后台可查
#AppID:企业号中的应用id
#PartyID:企业号中的部门id,多个部门用‘|’分隔
#isSendAll:0(只发送给个人) 1(发送给部门所有人)
#sendUsers:部门成员id(微信号) 当isSendAll为0时发送给${sendUsers},多个用户用空格间隔

#3.0 发送邮件相关(telnet发送无需安装mutt等组件)
#smtp:邮件发送主机
#smtpDomain:邮件发送后缀域名,比如test@abc.com,则配置为abc.com
#from:邮件发送者
#usernameBase64:邮件用户名base64
#passwordBase64:邮件密码base64
#toEmail:发送给谁,多个收件人用空格间隔

#4.0 不同环境下的基础配置项
#*Conf为不同环境下的配置项目,规则配置中将会用到
#devConf开发环境配置
#testConf测试环境配置
#zzbConf准生产环境配置(预生产环境)
#comConf生产环境配置

#4.1 自愈远程执行方式一: 自定义api远程执行
#api:自定义api sync:是否同步(true或false默认异步) async:是否异步(true或false默认异步)  
#rex_env:执行环境(默认local,即本地环境)  auth_type:认证类型(可选:password,key,config)  、
#user:用户名  password:密码 salt_env:api的执行环境(默认saltapi-com,可选saltapi-dev)
#returncode:全局默认http返回码/bash执行返回码 returntimeout:全局默认http超时时间/bash连接超时时间

#4.2 自愈远程执行方式二: salt-api远程执行
#saltUrl:salt-api的url地址 saltUsername:salt-api的用户名 saltPassword:salt-api的密码 

#4.3 自愈远程执行方式三: ssh expect && 自愈远程执行方式四: sshpass 
#sshUsername:全局ssh用户名(如规则配置不存在取全局) sshPassword:全局ssh密码(如规则配置不存在取全局)

#4.4 自愈远程执行方式五: ssh免秘钥执行 && 自愈远程执行方式六: ansible

#5.0 全局执行级别
#runlevel:当规则配置项不存在取全局默认执行方式
#runlevel:0(自定义api) 1(salt-api) 2(免秘钥ssh执行) 3(ssh expect函数执行) 4(ansible远程执行) 5(sshpass)

skipRuleParams=("serial" "env" "isactive" "cmd" "returncode" "returnreqiure" "returntimeout" "ischeck" "runlevel")
CropID='请自定义设置'
Secret='请自定义设置'
AppID=10000000  
PartyID=2  
isSendAll=0
sendUsers=("NelsonWinner")
smtp="smtp地址 25"
smtpDomain="smtp地址域"
from="test@test.com"     
usernameBase64="YmFvd2FuZ0BzZasdasdadsadhb3hpYW4uY29tCg=="
passwordBase64="assdsadqwqwWEDc="
toEmail="530035210@qq.com"
declare -A devConf
devConf=(
[api]='http://127.0.0.1:8080/api/run?apikey=uYY0ASBVEav08MDZGTHfRU4Gbrap45wI'
[sync]='true'
[async]='false'
[rex_env]='local'
[auth_type]='password'
[user]='root'
[password]='password'
[returncode]='200'
[returntimeout]='60'
[saltUrl]="https://x.x.x.x:8888"
[saltUsername]="saltapi"
[saltPassword]="saltapipassswword"
[sshUsername]="username"
[sshPassword]="password"
[runlevel]='4'
)
declare -A testConf
testConf=(
[api]='http://127.0.0.1:8080/api/run?apikey=uYY0ASBVEav08MDZGTHfRU4Gbrap45wI'
[sync]='true'
[async]='false'
[rex_env]='salt'
[salt_env]='saltapi-com'
[returncode]='200'
[returntimeout]='60'
[saltUrl]="https://x.x.x.x:18888"
[saltUsername]="username"
[saltPassword]="xxxxxxxxxxxxxx"
[sshUsername]="root"
[sshPassword]="password"
[runlevel]='0'
)
declare -A zzbConf
zzbConf=(
[api]='http://127.0.0.1:8080/api/run?apikey=uYY0ASBVEav08MDZGTHfRU4Gbrap45wI'
[sync]='true'
[async]='false'
[rex_env]='salt'
[salt_env]='saltapi-com'
[returncode]='200'
[returntimeout]='60'
[saltUrl]="https://x.x.x.x:18888"
[saltUsername]="saltapi"
[saltPassword]="xxxxxxxxxxxxxx"
[sshUsername]="username"
[sshPassword]="password"
[runlevel]='0'
)
declare -A comConf
comConf=(
[api]='http://127.0.0.1:8080/api/run?apikey=uYY0ASBVEav08MDZGTHfRU4Gbrap45wI'
[sync]='true'
[async]='false'
[rex_env]='salt'
[salt_env]='saltapi-com'
[returncode]='200'
[returntimeout]='60'
[saltUrl]="https://x.x.x.x:18888"
[saltUsername]="saltapi"
[saltPassword]="xxxxxxxxxxxxxx"
[sshUsername]="username"
[sshPassword]="password"
[runlevel]='0'
)